home *** CD-ROM | disk | FTP | other *** search
- unit ChildMainFormUnit;
-
- {$define Mutex}
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, IPCThrd;
-
- type
- TForm1 = class(TForm)
- Memo1: TMemo;
- procedure FormCreate(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- procedure Memo1Change(Sender: TObject);
- private
- { Private declarations }
- public
- MemMapFile: TSharedMem;
- {$ifdef Mutex}
- Mutex: TMutex;
- {$endif}
- end;
-
- var
- Form1: TForm1;
-
- const
- MemMapFileName = 'SampleMemoryMappedFile';
- MemMapSize = 1000;
-
- implementation
-
- {$R *.DFM}
-
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- {$ifdef Mutex}
- Mutex := TMutex.Create('FileMappingMutex');
- {$endif}
- MemMapFile := TSharedMem.Create(MemMapFileName, MemMapSize);
- end;
-
- procedure TForm1.FormDestroy(Sender: TObject);
- begin
- MemMapFile.Free
- end;
-
- procedure TForm1.Memo1Change(Sender: TObject);
- var
- Msg: String;
- begin
- {$ifdef Mutex}
- Mutex.Get(Integer(Infinite));
- {$endif}
- Msg := Memo1.Text;
- Move(PChar(Msg)^, MemMapFile.Buffer^, Length(Msg) + 1);
- {$ifdef Mutex}
- Mutex.Release;
- {$endif}
- end;
-
- end.
-